MMOG (Massively Multiplayer Online Game) could be the biggest revolution in computer game industry in recent years. As network technology evolved rapidly, thousands or millions of people can login into the same virtual world, stand at the same position, and play the same game together just like they are virtually in the same room at the same place. This has been such a great success since Korea became the world's largest exporter of online games in the year of 2002, and it is now a billion-dollar scale global market expecting to continue its impressive growth.
However, due to challenges in the areas of technology, asset-creation, and marketing, the current conventional practice takes at least two to three years and $20 million USD to build a MMOG. To build an enterprise-level network infrastructure that can scale to millions of simultaneous users would be a daunting task for almost any game developer. The requirement of the scalability is basically outside of the game developer's area of interest and expertise. As a result, numbers of middleware solutions for game developers to ease the development cost for MMOG has shown up since 2004. Several open-source projects have been created to provide free solution. It seems like they all try to answer to the question about MMOG scalability and flexibility and to claim the significantly benefit that hide the complexities of server through the provided platforms.
Virtual world simulation system has been studied and developed in the past few years. There are U.S. patents been issued in this field. A U.S. Pat. No. 6,219,045, entitled “Scalable Virtual World Chat Client-Server System”, is issued to Leahy on Apr. 17, 2001. A U.S. Pat. No. 6,731,314, entitled “Network-Based Three-Dimensional Multiple-User Shared Environment Apparatus and Method”, is issued to Cheng on May 4, 2004. Another U.S. Pat. No. 7,181,690, entitled “System and Method for Enabling Users to Interact in a Virtual Space”, is issued to Leahy on Feb. 20, 2007.
As the real-world game designs are so complicated that make a great impact on server performances, the average number of concurrent online players falls in the range between 2000 and 9000 per server cluster, which is consist of 5 to 20 servers (so each server is only capable of 500˜1000 players). For such limitation, most virtual game worlds are replicated into several independent worlds (called shards), in which players cannot communicate with each other due to the geographical constraint. To address the shard problem, recently the Project Darkstar initiated by Sun Microsystems announced their new technology to build “shardless” MMOGs. However, the number of concurrent players per server is still low and therefore the cost while the entire server cluster remains high. Also, their shardless technology is based on dynamic allocation on pre-defined fixed game region, which limits the provisioning efficiency due to the synchronization overhead of those mirror servers.
Designing a reusable, flexible, easy-to-use MMOG platform is challenging. Despite of the usability, the performance metrics are also significant, such as the scalability of MMOG. Scalability is usually the key to operating cost, because the higher scalability the platform is, the lower machine needed to be deployed, which results in lower cost. Even with the modernist design of MMOG platform, like EVE Online, the maximum number of concurrent players ever recorded is 22020. Other than that, as mentioned above, most of each server cluster ranges from 2000 to 9000. As far as we are concern, this is a relatively poor record compared to other internet service such as web server.
To see why, we need to know that the design constraints of MMOG platforms are unique, that is, tens of thousands or millions of players log in the same virtual world to interact with each other, and results in an aggressive amount of commands and updates generated as players move and attack. Therefore, the server cluster needs to process all the commands and sends all the updates to players within a limited time constraint. Lots of researchers put their eye on reducing the network latency to give more time to serve requests. The proposed communication architectures include peer-to-peer architecture and the scalable server/proxy architecture. They all succeed to reduce the network latency to have more concurrent players within acceptable time delay; however the maximum concurrent players is still far from 10 k, which is the capability that a scalable server should have generally. There should be some other bottleneck in the design.
In our point of view, since the network technology evolved rapidly that the optical interconnection is popping out of the surface and the broadband internet access is becoming the majority, the transmission delay between the server and the client has dropped to a certain level. Eventually, the network latency will not be an issue in the near future, and we will spend the most of processing time for client commands.
Basically, due to the current CPU architecture, CPU is not capable of large amount of data, which is most likely the case of MMOG. Due to the differences of the logic gate architecture between the graphic processor and the CPU, a graphic processor provides a much higher performance in parallel processing multiple tasks. CPU architecture emphasizes more on the internal logic gate, which means for handling a more complicated task. On another hand, the graphic processor's architecture emphasizes more on the I/O efficiency, which is not suitable for any complicated task, but does provide a higher performance in handing multiple simple tasks in parallel. Although multi-core CPU has come to market, the memory bandwidth between CPU and main memory is still low, and multiple cache-misses occurred for the sake of limited resources and different execution contexts of the game logics and network handlers. Also, different thread executions need synchronization and atomic locking operation to avoid update conflicts. Apparently, these constraints damage the performance and limit the throughput of executing client commands on CPU.
As we identify the kernel of the problem is due to the architecture of CPU, we began to search for methods to efficiently process significant amount the client commands and update the entire virtual world. Our final answer is GPU. For last decade, GPU has been transformed from a simple 3D rendering acceleration silicon into an array of SIMD (Single Instruction Multiple Data) processors. The parallel computation power of GPU is more than 100 times than CPU, and also, the memory bandwidth between the processor and the device memory of GPU is much larger than that of CPU. In general, GPU has been specialized for both compute-intensive and highly parallel computation, and the computation power of GPU has been grown rapidly even beyond Moore's Law. From the year of 2003, some researcher began to make use of GPU to do general purpose computation by mapping the general purpose problems into a 3D rendering problems. These problems range from collision detection to online databases. In all of the studies, the performance boost by 10 to 100 times is observed by exploiting GPU computation.
In fact, using a graphic processor in server-side is not new. For instance, Simutronics Corporation has integrated the NVIDIA® PhysX® technology, which uses NVIDIA® graphic processor unit (GPU) to accelerate soft-body physics simulation, into their MMO middleware product. However, the use of graphic processor to accelerate virtual world simulation was limited to a small set of simulation tasks. There hasn't been any commercial practice using commodity parallel co-processors like GPUs to accelerate the general logic in virtual world simulation due to the lack of proper algorithm and software support. The most possible reason for that is the complicated calculation and update conflict problem in the MMOG platform. But with the latest GPU technology, the current invention provides a system and a method to migrate the computation load from CPU to GPU.
Hence, the current invention provides the solution for the scalability problem in most of the commercial off-the-shelf MMOG platforms as well as the open source ones; and the current invention proposes a solution by employing the graphic processors. The current invention can really scale up to a very large number of concurrent players on a single server.